/*
  筛选组件
  传入isfixed控制吸顶盒效果
  filtertype 1  默认一行3个
             2  一行2个
*/
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        isfixed: {
            type: Boolean,
            value: false
        },
        filtertype: {
            type: Number,
            value: 1
        },
        filterbox: {
            type: Array,
            value: [],
            observer(newval) {
                console.log('filter组件：', newval)
            }
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        //是否显示有货
        showstock: true,
        //排序方式 0 默认  1 低价  2 高价 3 人气
        sorttype: 0,
        //排序名称
        sortname: ['默认排序', '价格从低到高', '价格从高到低', '人气从高到低'],
        //更多筛选显示隐藏
        sortbox: false,
        //吸顶盒效果
        isfixed: false
    },

    /**
     * 组件的方法列表
     */
    methods: {
        //显示/隐藏有货
        changestock() {
            this.setData({
                showstock: !this.data.showstock
            }, () => {
                this.triggerEvent('filterComponentChange', this.data)
            })
        },
        //选择排序方式
        choosesorttype(e) {
            // console.log('选择排序方式' + e.currentTarget.dataset.sorttype)
            this.setData({
                sorttype: e.currentTarget.dataset.sorttype
            }, () => {
                this.setData({
                    sortbox: false
                })
            })
            //把筛选数据发送给调用页面的sorttype方法
            this.triggerEvent('filterComponentChange', this.data)
        },
        //显示/隐藏更多筛选
        showsortbox() {
            this.setData({
                sortbox: !this.data.sortbox
            })
        },
        //进入筛选页面
        gofilterpage() {
            wx.navigateTo({
                url: `/pages/home/zone/filterpage/filterpage`,
            })
        }
    },
    ready() {
        setTimeout(() => {
            wx.createSelectorQuery().in(this).select('.filterbox').boundingClientRect().exec((res) => {
                //把盒子距离顶部高度数据发送给调用页面的filtertop方法,用来控制吸顶盒class
                this.triggerEvent('filtertop', res[0].top)
            })
        }, 800)
    }
})
